Apex Unit Test কী এবং কেন গুরুত্বপূর্ণ

Computer Programming - এপেক্স (Apex) Apex Unit Testing (Apex Unit Testing) |
227
227

Apex Unit Test হলো Apex কোডের নির্দিষ্ট অংশের কার্যকারিতা যাচাই করার একটি পদ্ধতি, যা প্রোগ্রামের নির্দিষ্ট লজিক বা ফাংশনালিটি সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করে। Salesforce-এ Unit Test তৈরি করা বাধ্যতামূলক এবং এটি প্রোডাকশন ডিপ্লয়মেন্টের জন্য অত্যন্ত গুরুত্বপূর্ণ।


Apex Unit Test এর মূল ধারণা

Apex Unit Test-এর মাধ্যমে কোডের নির্দিষ্ট অংশে কৃত্রিম ইনপুট দিয়ে আউটপুট যাচাই করা হয় এবং নিশ্চিত করা হয় যে কোডটি সঠিকভাবে কাজ করছে। এতে Test Class এবং Test Method ব্যবহার করা হয়, যা @isTest অ্যানোটেশন দিয়ে চিহ্নিত করা হয়।


Apex Unit Test কেন গুরুত্বপূর্ণ?

বাগ সনাক্তকরণ ও সমাধান: Unit Test চালানোর মাধ্যমে কোডে কোনো বাগ বা ত্রুটি থাকলে তা দ্রুত সনাক্ত করা যায় এবং সমাধান করা সহজ হয়।

কোডের সঠিকতা নিশ্চিতকরণ: Unit Test কোডের প্রত্যাশিত আউটপুট যাচাই করে এবং নিশ্চিত করে যে কোডটি সঠিকভাবে কাজ করছে।

ডিপ্লয়মেন্টের পূর্ব প্রস্তুতি: Salesforce প্রোডাকশন ডিপ্লয়মেন্টের জন্য কমপক্ষে ৭৫% কোড কভারেজ থাকা বাধ্যতামূলক, যা Unit Test-এর মাধ্যমে অর্জন করা যায়।

পরিবর্তনের সময় কোডের স্থায়িত্ব: যখন কোডে কোনো পরিবর্তন করা হয় বা নতুন ফিচার যোগ করা হয়, তখন Unit Test চালিয়ে নিশ্চিত করা যায় যে কোড পরিবর্তনের ফলে কোনো বিদ্যমান কার্যক্ষমতায় সমস্যা হচ্ছে না।

গভর্নর লিমিট টেস্টিং: Salesforce গভর্নর লিমিট মেনে চলতে Unit Test গুরুত্বপূর্ণ, কারণ এটি লিমিটের মধ্যে কোড সঠিকভাবে কাজ করছে কিনা যাচাই করে।


Apex Unit Test এর গঠন

Apex Unit Test ক্লাস এবং মেথডে সাধারণত @isTest অ্যানোটেশন ব্যবহার করা হয়। Unit Test মেথডে টেস্ট ডেটা তৈরি, পরীক্ষিত মেথড কল করা এবং System.assertEquals() ব্যবহার করে ফলাফল যাচাই করা হয়।

@isTest
public class AccountHandlerTest {
    
    // Test Method
    @isTest
    static void testUpdateAccountIndustry() {
        // টেস্ট ডেটা তৈরি
        Account acc = new Account(Name = 'Tech Solutions', Industry = 'Healthcare');
        insert acc;
        
        // পরীক্ষিত মেথড কল
        AccountHandler.updateAccountIndustry(acc.Id, 'Technology');
        
        // প্রত্যাশিত ফলাফল যাচাই
        Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
        System.assertEquals('Technology', updatedAcc.Industry, 'Industry field did not update correctly');
    }
}
  • @isTest: Test Class এবং Method নির্দেশ করতে ব্যবহৃত হয়।
  • testUpdateAccountIndustry: একটি টেস্ট মেথড, যেখানে AccountHandler.updateAccountIndustry() মেথডের কার্যকারিতা যাচাই করা হয়েছে।
  • System.assertEquals(): প্রত্যাশিত এবং প্রাপ্ত আউটপুট তুলনা করে এবং ফলাফল সঠিক কিনা যাচাই করে।

Apex Unit Test এর গুরুত্বপূর্ণ অংশ

Test Class এবং Method: Unit Test ক্লাস এবং মেথডকে @isTest অ্যানোটেশন দিয়ে চিহ্নিত করতে হয়।

Test Data Creation: Unit Test চালানোর জন্য নতুন ডেটা তৈরি করা হয়, যা মূল ডেটাবেসে কোনো পরিবর্তন আনে না। Salesforce-এ Unit Test চলাকালীন Test Data তৈরি করতে SeeAllData=false ব্যবহার করা হয়।

System.assert() Methods: System.assertEquals() বা System.assertNotEquals() ব্যবহার করে প্রত্যাশিত এবং প্রাপ্ত আউটপুট তুলনা করা হয়।

Test.startTest() এবং Test.stopTest(): Unit Test-এর ক্ষেত্রে গভর্নর লিমিট রিসেট এবং Async অপারেশন চালানোর জন্য Test.startTest() এবং Test.stopTest() ব্যবহৃত হয়।


Apex Unit Test এর উদাহরণ

নিচের উদাহরণে ContactHandler ক্লাসে updateContactEmail মেথড টেস্ট করা হয়েছে, যা কন্টাক্টের ইমেইল আপডেট করে।

Test Class

@isTest
public class ContactHandlerTest {
    @isTest
    static void testUpdateContactEmail() {
        // Test Data তৈরি
        Contact con = new Contact(FirstName = 'John', LastName = 'Doe', Email = 'john.doe@example.com');
        insert con;

        // মেথড টেস্ট করা হচ্ছে
        ContactHandler.updateContactEmail(con.Id, 'john.new@example.com');

        // আউটপুট যাচাই করা হচ্ছে
        Contact updatedCon = [SELECT Email FROM Contact WHERE Id = :con.Id];
        System.assertEquals('john.new@example.com', updatedCon.Email, 'Email did not update correctly');
    }
}
  • testUpdateContactEmail: এই টেস্ট মেথডে ContactHandler.updateContactEmail() মেথডের কার্যক্ষমতা যাচাই করা হয়েছে।
  • System.assertEquals(): প্রত্যাশিত এবং প্রাপ্ত আউটপুটের তুলনা করে সঠিকভাবে ইমেইল আপডেট হয়েছে কিনা নিশ্চিত করা হয়েছে।

ভালো অনুশীলন

SeeAllData=false: Unit Test-এর ক্ষেত্রে SeeAllData=false ব্যবহার করে নিশ্চিত করা উচিত যে, Test Data মূল ডেটাবেসে কোনো প্রভাব ফেলছে না।

Test Coverage নিশ্চিত করুন: Production ডিপ্লয়মেন্টের জন্য কমপক্ষে ৭৫% কোড কভারেজ থাকা বাধ্যতামূলক। তাই Unit Test তৈরি করে সর্বোচ্চ কোড কভারেজ নিশ্চিত করা উচিত।

System.assert ব্যবহার করুন: প্রত্যাশিত এবং প্রাপ্ত ফলাফল যাচাই করতে System.assert() ব্যবহার করুন, যাতে Unit Test সঠিক আউটপুট যাচাই করতে পারে।

Exception Handling টেস্ট করুন: Exception Handling-এর ক্ষেত্রে নিশ্চিত হন যে Unit Test এর মাধ্যমে Exception সঠিকভাবে হ্যান্ডেল হচ্ছে।

গভর্নর লিমিটের মধ্যে টেস্টিং: গভর্নর লিমিটের সীমার মধ্যে কোড সঠিকভাবে কাজ করছে কিনা যাচাই করতে Test.startTest() এবং Test.stopTest() ব্যবহার করুন।


সংক্ষেপে

  • Apex Unit Test হলো Apex কোডের নির্দিষ্ট অংশের কার্যকারিতা যাচাই করার একটি প্রক্রিয়া।
  • এটি কোডের সঠিকতা, কার্যক্ষমতা, এবং গভর্নর লিমিট মেনে চলার জন্য অত্যন্ত গুরুত্বপূর্ণ।
  • Unit Test কোড কভারেজ নিশ্চিত করে এবং Production ডিপ্লয়মেন্টের জন্য কমপক্ষে ৭৫% কভারেজ থাকা বাধ্যতামূলক।

Apex Unit Test ব্যবহার করে উন্নয়নকারীরা Salesforce অ্যাপ্লিকেশনকে আরও কার্যকর ও স্থিতিশীল করতে পারেন এবং Production ডিপ্লয়মেন্টের সময় নিরাপত্তা ও নির্ভরযোগ্যতা নিশ্চিত করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion